﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Media;
using System.Collections.ObjectModel;
using System.Data;
using System.Windows.Media.Imaging;
using System.ComponentModel;
using System.Diagnostics;
using System.Windows.Controls;
using System.Globalization;
using produccion.modelo;
using produccion.AccesoDatos;
using produccion.clases;
using produccion.forms;
using produccion.reportes;
using System.Windows.Input;
using System.Collections.Specialized;

namespace produccion.vistamodelo
{
    public class VMAgregarItemsPedido : ViewModelBase, IDataErrorInfo
    {
        #region Campos
        private CLSMAEREF _referencia = new CLSMAEREF();
        private List<CLSMAECLIP> _lisclientes = new List<CLSMAECLIP>();
        private CLSMAECLIP _selcliente = new CLSMAECLIP();
        private List<CLSMAECOL> _liscolores = new List<CLSMAECOL>();
        private CLSMAECOL _selcolor = new CLSMAECOL();
        private CLSMAECOL _color = new CLSMAECOL();

        private ProcesoProduccionRepositorio _repositorio = new ProcesoProduccionRepositorio();
        #endregion

        #region Constructor
        public VMAgregarItemsPedido()
            {
                try
                {
                    buscarReferencia = new VMbuscarReferencia();
                    buscarReferencia.TieneColor = false;
                    buscarReferencia.PropertyChanged += onBuscarReferenciaPropertyChanged;

                    consultaClientes();
                    informe = new DataTable();

                    if (MDOgeneral.conexion == null || MDOgeneral.conexion.State == ConnectionState.Closed)
                    {
                        MDOgeneral.conectar();
                    }
                    strTituloVentana = "Pedidos Proceso Interno - Usuario: " + MDOgeneral.usuario + " - [FRMAgregarItemsPedido]";
                }
                catch (Exception ex) { MessageBox.Show(ex.Message); }
            }
        #endregion

        #region Propiedades
        
        private string _strTituloVentana;
        public string strTituloVentana
        {
            get { return _strTituloVentana; }
            set { _strTituloVentana = value; base.OnPropertyChanged("strTituloVentana"); }
        }

        public List<CLSMAECLIP> lisclientes
        {
            get { return _lisclientes; }
            set { _lisclientes = value; base.OnPropertyChanged("lisclientes"); }
        }

        public CLSMAECLIP selcliente
        {
            get { return _selcliente; }
            set 
            { 
                _selcliente = value; 
                base.OnPropertyChanged("selcliente");
                if (selcliente != null)
                {
                    if (selcliente.CODCLI_CLI != null)
                        consultarPedidosCliente();
                    else
                    {
                        if (String.IsNullOrEmpty(selcliente.CODCLI_CLI))
                            informe = new DataTable();
                    }
                }
                else
                {
                    informe = new DataTable();
                }
            }
        }

        private string _strAño = Convert.ToString(DateTime.Now.Year).Trim();
        public string strAño
        {
            get { return _strAño; }
            set { _strAño = value; base.OnPropertyChanged("strAño"); }
        }

        private DataTable _informe = new DataTable();
        public DataTable informe
        {
            get { return _informe; }
            set { _informe = value; base.OnPropertyChanged("informe"); }
        }

        private int _selinforme ;
        public int selinforme
        {
            get { return _selinforme; }
            set 
            { 
                _selinforme = value; 
                base.OnPropertyChanged("selinforme");
                if (selinforme != -1)
                {
                    visorFotoReferencia.strCodigo = informe.Rows[selinforme]["CODREF_TMP"].ToString();
                    visorFotoReferencia.strColor = informe.Rows[selinforme]["CODCOL_TMP"].ToString();
                }
            }
        }

        private string _strReferencia ;
        public string strReferencia
        {
            get { return _strReferencia; }
            set 
            { 
                _strReferencia = value; 
                base.OnPropertyChanged("strReferencia");
                if (strReferencia != null)
                {
                    if (!String.IsNullOrEmpty(strReferencia))
                    {
                        consultaColores();
                    }
                    else
                    {
                        limpiaReferencia();
                    }
                }
            }
        }

        private string _strNombreReferencia;
        public string strNombreReferencia
        {
            get { return _strNombreReferencia; }
            set { _strNombreReferencia = value; base.OnPropertyChanged("strNombreReferencia"); }
        }

        public List<CLSMAECOL> liscolores
        {
            get { return _liscolores; }
            set { _liscolores = value; base.OnPropertyChanged("liscolores"); }
        }

        public CLSMAECOL selcolor
        {
            get { return _selcolor; }
            set
            {
                _selcolor = value;
                base.OnPropertyChanged("selcolor");
                if (selcolor != null)
                {
                    if (selcolor.CODCOL_COL != null)
                    {
                        visorFotoReferencia.strColor = selcolor.CODCOL_COL;

                        _referencia.CODREF_REF = strReferencia;
                        DataTable dtC = _referencia.buscarTallasColor(selcolor.CODCOL_COL);
                        foreach (DataRow drC in dtC.Rows)
                        {
                            if (strTalla1 == drC["CODTAL_PRO"].ToString()) logTalla1 = true;
                            if (strTalla2 == drC["CODTAL_PRO"].ToString()) logTalla2 = true;
                            if (strTalla3 == drC["CODTAL_PRO"].ToString()) logTalla3 = true; 
                            if (strTalla4 == drC["CODTAL_PRO"].ToString()) logTalla4 = true;
                            if (strTalla5 == drC["CODTAL_PRO"].ToString()) logTalla5 = true;
                            if (strTalla6 == drC["CODTAL_PRO"].ToString()) logTalla6 = true;
                            if (strTalla7 == drC["CODTAL_PRO"].ToString()) logTalla7 = true;
                            if (strTalla8 == drC["CODTAL_PRO"].ToString()) logTalla8 = true;
                            if (strTalla9 == drC["CODTAL_PRO"].ToString()) logTalla9 = true;
                            if (strTalla10 == drC["CODTAL_PRO"].ToString()) logTalla10 = true;
                            if (strTalla11 == drC["CODTAL_PRO"].ToString()) logTalla11 = true;
                            if (strTalla12 == drC["CODTAL_PRO"].ToString()) logTalla12 = true;
                            if (strTalla13 == drC["CODTAL_PRO"].ToString()) logTalla13 = true;
                            if (strTalla14 == drC["CODTAL_PRO"].ToString()) logTalla14 = true;
                            if (strTalla15 == drC["CODTAL_PRO"].ToString()) logTalla15 = true;
                            if (strTalla16 == drC["CODTAL_PRO"].ToString()) logTalla16 = true;
                            if (strTalla17 == drC["CODTAL_PRO"].ToString()) logTalla17 = true;
                            if (strTalla18 == drC["CODTAL_PRO"].ToString()) logTalla18 = true;
                            if (strTalla19 == drC["CODTAL_PRO"].ToString()) logTalla19 = true; 
                            if (strTalla20 == drC["CODTAL_PRO"].ToString()) logTalla20 = true;
                        }
                    }
                }
            }
        }

        private string _strTalla1;
        public string strTalla1
        {
            get { return _strTalla1; }
            set { _strTalla1 = value; base.OnPropertyChanged("strTalla1"); }
        }

        private string _strTalla2;
        public string strTalla2
        {
            get { return _strTalla2; }
            set { _strTalla2 = value; base.OnPropertyChanged("strTalla2"); }
        }
        private string _strTalla3;
        public string strTalla3
        {
            get { return _strTalla3; }
            set { _strTalla3 = value; base.OnPropertyChanged("strTalla3"); }
        }
        private string _strTalla4;
        public string strTalla4
        {
            get { return _strTalla4; }
            set { _strTalla4 = value; base.OnPropertyChanged("strTalla4"); }
        }
        private string _strTalla5;
        public string strTalla5
        {
            get { return _strTalla5; }
            set { _strTalla5 = value; base.OnPropertyChanged("strTalla5"); }
        }
        private string _strTalla6;
        public string strTalla6
        {
            get { return _strTalla6; }
            set { _strTalla6 = value; base.OnPropertyChanged("strTalla6"); }
        }
        private string _strTalla7;
        public string strTalla7
        {
            get { return _strTalla7; }
            set { _strTalla7 = value; base.OnPropertyChanged("strTalla7"); }
        }
        private string _strTalla8;
        public string strTalla8
        {
            get { return _strTalla8; }
            set { _strTalla8 = value; base.OnPropertyChanged("strTalla8"); }
        }
        private string _strTalla9;
        public string strTalla9
        {
            get { return _strTalla9; }
            set { _strTalla9 = value; base.OnPropertyChanged("strTalla9"); }
        }
        private string _strTalla10;
        public string strTalla10
        {
            get { return _strTalla10; }
            set { _strTalla10 = value; base.OnPropertyChanged("strTalla10"); }
        }
        private string _strTalla11;
        public string strTalla11
        {
            get { return _strTalla11; }
            set { _strTalla11 = value; base.OnPropertyChanged("strTalla11"); }
        }
        private string _strTalla12;
        public string strTalla12
        {
            get { return _strTalla12; }
            set { _strTalla12 = value; base.OnPropertyChanged("strTalla12"); }
        }

        private string _strTalla13;
        public string strTalla13
        {
            get { return _strTalla13; }
            set { _strTalla13 = value; base.OnPropertyChanged("strTalla13"); }
        }

        private string _strTalla14;
        public string strTalla14
        {
            get { return _strTalla14; }
            set { _strTalla14 = value; base.OnPropertyChanged("strTalla14"); }
        }

        private string _strTalla15;
        public string strTalla15
        {
            get { return _strTalla15; }
            set { _strTalla15 = value; base.OnPropertyChanged("strTalla15"); }
        }

        private string _strTalla16;
        public string strTalla16
        {
            get { return _strTalla16; }
            set { _strTalla16 = value; base.OnPropertyChanged("strTalla16"); }
        }

        private string _strTalla17;
        public string strTalla17
        {
            get { return _strTalla17; }
            set { _strTalla17 = value; base.OnPropertyChanged("strTalla17"); }
        }

        private string _strTalla18;
        public string strTalla18
        {
            get { return _strTalla18; }
            set { _strTalla18 = value; base.OnPropertyChanged("strTalla18"); }
        }

        private string _strTalla19;
        public string strTalla19
        {
            get { return _strTalla19; }
            set { _strTalla19 = value; base.OnPropertyChanged("strTalla19"); }
        }

        private string _strTalla20;
        public string strTalla20
        {
            get { return _strTalla20; }
            set { _strTalla20 = value; base.OnPropertyChanged("strTalla20"); }
        }


        private Int32 _numTalla1;
        public Int32 numTalla1
        {
            get { return _numTalla1; }
            set 
            { 
                _numTalla1 = value; 
                base.OnPropertyChanged("numTalla1");
                numTotal = numTalla1 + numTalla2 + numTalla3 + numTalla4 + numTalla5 + numTalla6 + numTalla7 + numTalla8 + numTalla9 + numTalla10 + numTalla11 + numTalla12 + numTalla13 + numTalla14 + numTalla15 + numTalla16 + numTalla17 + numTalla18 + numTalla19 + numTalla20; 
            }
        }

        private Int32 _numTalla2;
        public Int32 numTalla2
        {
            get { return _numTalla2; }
            set 
            { 
                _numTalla2 = value; 
                base.OnPropertyChanged("numTalla2");
                numTotal = numTalla1 + numTalla2 + numTalla3 + numTalla4 + numTalla5 + numTalla6 + numTalla7 + numTalla8 + numTalla9 + numTalla10 + numTalla11 + numTalla12 + numTalla13 + numTalla14 + numTalla15 + numTalla16 + numTalla17 + numTalla18 + numTalla19 + numTalla20; 
            }
        }
        private Int32 _numTalla3;
        public Int32 numTalla3
        {
            get { return _numTalla3; }
            set 
            { 
                _numTalla3 = value; 
                base.OnPropertyChanged("numTalla3");
                numTotal = numTalla1 + numTalla2 + numTalla3 + numTalla4 + numTalla5 + numTalla6 + numTalla7 + numTalla8 + numTalla9 + numTalla10 + numTalla11 + numTalla12 + numTalla13 + numTalla14 + numTalla15 + numTalla16 + numTalla17 + numTalla18 + numTalla19 + numTalla20; 
            }
        }
        private Int32 _numTalla4;
        public Int32 numTalla4
        {
            get { return _numTalla4; }
            set 
            { 
                _numTalla4 = value; 
                base.OnPropertyChanged("numTalla4");
                numTotal = numTalla1 + numTalla2 + numTalla3 + numTalla4 + numTalla5 + numTalla6 + numTalla7 + numTalla8 + numTalla9 + numTalla10 + numTalla11 + numTalla12 + numTalla13 + numTalla14 + numTalla15 + numTalla16 + numTalla17 + numTalla18 + numTalla19 + numTalla20; 
            }
        }
        private Int32 _numTalla5;
        public Int32 numTalla5
        {
            get { return _numTalla5; }
            set 
            { 
                _numTalla5 = value; 
                base.OnPropertyChanged("numTalla5");
                numTotal = numTalla1 + numTalla2 + numTalla3 + numTalla4 + numTalla5 + numTalla6 + numTalla7 + numTalla8 + numTalla9 + numTalla10 + numTalla11 + numTalla12 + numTalla13 + numTalla14 + numTalla15 + numTalla16 + numTalla17 + numTalla18 + numTalla19 + numTalla20; 
            }
        }
        private Int32 _numTalla6;
        public Int32 numTalla6
        {
            get { return _numTalla6; }
            set 
            { 
                _numTalla6 = value; 
                base.OnPropertyChanged("numTalla6");
                numTotal = numTalla1 + numTalla2 + numTalla3 + numTalla4 + numTalla5 + numTalla6 + numTalla7 + numTalla8 + numTalla9 + numTalla10 + numTalla11 + numTalla12 + numTalla13 + numTalla14 + numTalla15 + numTalla16 + numTalla17 + numTalla18 + numTalla19 + numTalla20; 
            }
        }
        private Int32 _numTalla7;
        public Int32 numTalla7
        {
            get { return _numTalla7; }
            set 
            { 
                _numTalla7 = value; 
                base.OnPropertyChanged("numTalla7");
                numTotal = numTalla1 + numTalla2 + numTalla3 + numTalla4 + numTalla5 + numTalla6 + numTalla7 + numTalla8 + numTalla9 + numTalla10 + numTalla11 + numTalla12 + numTalla13 + numTalla14 + numTalla15 + numTalla16 + numTalla17 + numTalla18 + numTalla19 + numTalla20; 
            }
        }
        private Int32 _numTalla8;
        public Int32 numTalla8
        {
            get { return _numTalla8; }
            set 
            { 
                _numTalla8 = value; 
                base.OnPropertyChanged("numTalla8");
                numTotal = numTalla1 + numTalla2 + numTalla3 + numTalla4 + numTalla5 + numTalla6 + numTalla7 + numTalla8 + numTalla9 + numTalla10 + numTalla11 + numTalla12 + numTalla13 + numTalla14 + numTalla15 + numTalla16 + numTalla17 + numTalla18 + numTalla19 + numTalla20; 
            }
        }
        private Int32 _numTalla9;
        public Int32 numTalla9
        {
            get { return _numTalla9; }
            set 
            { 
                _numTalla9 = value; 
                base.OnPropertyChanged("numTalla9");
                numTotal = numTalla1 + numTalla2 + numTalla3 + numTalla4 + numTalla5 + numTalla6 + numTalla7 + numTalla8 + numTalla9 + numTalla10 + numTalla11 + numTalla12 + numTalla13 + numTalla14 + numTalla15 + numTalla16 + numTalla17 + numTalla18 + numTalla19 + numTalla20;
            }
        }
        private Int32 _numTalla10;
        public Int32 numTalla10
        {
            get { return _numTalla10; }
            set 
            { 
                _numTalla10 = value; 
                base.OnPropertyChanged("numTalla10");
                numTotal = numTalla1 + numTalla2 + numTalla3 + numTalla4 + numTalla5 + numTalla6 + numTalla7 + numTalla8 + numTalla9 + numTalla10 + numTalla11 + numTalla12 + numTalla13 + numTalla14 + numTalla15 + numTalla16 + numTalla17 + numTalla18 + numTalla19 + numTalla20; 
            }
        }
        private Int32 _numTalla11;
        public Int32 numTalla11
        {
            get { return _numTalla11; }
            set 
            { 
                _numTalla11 = value; 
                base.OnPropertyChanged("numTalla11");
                numTotal = numTalla1 + numTalla2 + numTalla3 + numTalla4 + numTalla5 + numTalla6 + numTalla7 + numTalla8 + numTalla9 + numTalla10 + numTalla11 + numTalla12 + numTalla13 + numTalla14 + numTalla15 + numTalla16 + numTalla17 + numTalla18 + numTalla19 + numTalla20; 
            }
        }
        private Int32 _numTalla12;
        public Int32 numTalla12
        {
            get { return _numTalla12; }
            set 
            { 
                _numTalla12 = value; 
                base.OnPropertyChanged("numTalla12");
                numTotal = numTalla1 + numTalla2 + numTalla3 + numTalla4 + numTalla5 + numTalla6 + numTalla7 + numTalla8 + numTalla9 + numTalla10 + numTalla11 + numTalla12 + numTalla13 + numTalla14 + numTalla15 + numTalla16 + numTalla17 + numTalla18 + numTalla19 + numTalla20;
            }
        }

        private Int32 _numTalla13;
        public Int32 numTalla13
        {
            get { return _numTalla13; }
            set 
            { 
                _numTalla13 = value; 
                base.OnPropertyChanged("numTalla13");
                numTotal = numTalla1 + numTalla2 + numTalla3 + numTalla4 + numTalla5 + numTalla6 + numTalla7 + numTalla8 + numTalla9 + numTalla10 + numTalla11 + numTalla12 + numTalla13 + numTalla14 + numTalla15 + numTalla16 + numTalla17 + numTalla18 + numTalla19 + numTalla20; 
            }
        }

        private Int32 _numTalla14;
        public Int32 numTalla14
        {
            get { return _numTalla14; }
            set 
            { 
                _numTalla14 = value; 
                base.OnPropertyChanged("numTalla14");
                numTotal = numTalla1 + numTalla2 + numTalla3 + numTalla4 + numTalla5 + numTalla6 + numTalla7 + numTalla8 + numTalla9 + numTalla10 + numTalla11 + numTalla12 + numTalla13 + numTalla14 + numTalla15 + numTalla16 + numTalla17 + numTalla18 + numTalla19 + numTalla20; 
            }
        }

        private Int32 _numTalla15;
        public Int32 numTalla15
        {
            get { return _numTalla15; }
            set 
            { 
                _numTalla15 = value; 
                base.OnPropertyChanged("numTalla15");
                numTotal = numTalla1 + numTalla2 + numTalla3 + numTalla4 + numTalla5 + numTalla6 + numTalla7 + numTalla8 + numTalla9 + numTalla10 + numTalla11 + numTalla12 + numTalla13 + numTalla14 + numTalla15 + numTalla16 + numTalla17 + numTalla18 + numTalla19 + numTalla20; 
            }
        }

        private Int32 _numTalla16;
        public Int32 numTalla16
        {
            get { return _numTalla16; }
            set 
            { 
                _numTalla16 = value; 
                base.OnPropertyChanged("numTalla16");
                numTotal = numTalla1 + numTalla2 + numTalla3 + numTalla4 + numTalla5 + numTalla6 + numTalla7 + numTalla8 + numTalla9 + numTalla10 + numTalla11 + numTalla12 + numTalla13 + numTalla14 + numTalla15 + numTalla16 + numTalla17 + numTalla18 + numTalla19 + numTalla20; 
            }
        }

        private Int32 _numTalla17;
        public Int32 numTalla17
        {
            get { return _numTalla17; }
            set 
            { 
                _numTalla17 = value; 
                base.OnPropertyChanged("numTalla17");
                numTotal = numTalla1 + numTalla2 + numTalla3 + numTalla4 + numTalla5 + numTalla6 + numTalla7 + numTalla8 + numTalla9 + numTalla10 + numTalla11 + numTalla12 + numTalla13 + numTalla14 + numTalla15 + numTalla16 + numTalla17 + numTalla18 + numTalla19 + numTalla20; 
            }
        }

        private Int32 _numTalla18;
        public Int32 numTalla18
        {
            get { return _numTalla18; }
            set 
            { 
                _numTalla18 = value; 
                base.OnPropertyChanged("numTalla18");
                numTotal = numTalla1 + numTalla2 + numTalla3 + numTalla4 + numTalla5 + numTalla6 + numTalla7 + numTalla8 + numTalla9 + numTalla10 + numTalla11 + numTalla12 + numTalla13 + numTalla14 + numTalla15 + numTalla16 + numTalla17 + numTalla18 + numTalla19 + numTalla20; 
            }
        }

        private Int32 _numTalla19;
        public Int32 numTalla19
        {
            get { return _numTalla19; }
            set 
            { 
                _numTalla19 = value; 
                base.OnPropertyChanged("numTalla19");
                numTotal = numTalla1 + numTalla2 + numTalla3 + numTalla4 + numTalla5 + numTalla6 + numTalla7 + numTalla8 + numTalla9 + numTalla10 + numTalla11 + numTalla12 + numTalla13 + numTalla14 + numTalla15 + numTalla16 + numTalla17 + numTalla18 + numTalla19 + numTalla20; 
            }
        }

        private Int32 _numTalla20;
        public Int32 numTalla20
        {
            get { return _numTalla20; }
            set 
            { 
                _numTalla20 = value; 
                base.OnPropertyChanged("numTalla20");
                numTotal = numTalla1 + numTalla2 + numTalla3 + numTalla4 + numTalla5 + numTalla6 + numTalla7 + numTalla8 + numTalla9 + numTalla10 + numTalla11 + numTalla12 + numTalla13 + numTalla14 + numTalla15 + numTalla16 + numTalla17 + numTalla18 + numTalla19 + numTalla20; 
            }
        }

        private Int32 _numTotal;
        public Int32 numTotal
        {
            get { return _numTotal; }
            set { _numTotal = value; base.OnPropertyChanged("numTotal"); }
        }

        private Boolean _logTalla1 = false;
        public Boolean logTalla1
        {
            get { return _logTalla1; }
            set { _logTalla1 = value; base.OnPropertyChanged("logTalla1"); }
        }

        private Boolean _logTalla2 = false;
        public Boolean logTalla2
        {
            get { return _logTalla2; }
            set { _logTalla2 = value; base.OnPropertyChanged("logTalla2"); }
        }
        private Boolean _logTalla3 = false;
        public Boolean logTalla3
        {
            get { return _logTalla3; }
            set { _logTalla3 = value; base.OnPropertyChanged("logTalla3"); }
        }
        private Boolean _logTalla4 = false;
        public Boolean logTalla4
        {
            get { return _logTalla4; }
            set { _logTalla4 = value; base.OnPropertyChanged("logTalla4"); }
        }
        private Boolean _logTalla5 = false;
        public Boolean logTalla5
        {
            get { return _logTalla5; }
            set { _logTalla5 = value; base.OnPropertyChanged("logTalla5"); }
        }
        private Boolean _logTalla6 = false;
        public Boolean logTalla6
        {
            get { return _logTalla6; }
            set { _logTalla6 = value; base.OnPropertyChanged("logTalla6"); }
        }
        private Boolean _logTalla7 = false;
        public Boolean logTalla7
        {
            get { return _logTalla7; }
            set { _logTalla7 = value; base.OnPropertyChanged("logTalla7"); }
        }
        private Boolean _logTalla8 = false;
        public Boolean logTalla8
        {
            get { return _logTalla8; }
            set { _logTalla8 = value; base.OnPropertyChanged("logTalla8"); }
        }
        private Boolean _logTalla9 = false;
        public Boolean logTalla9
        {
            get { return _logTalla9; }
            set { _logTalla9 = value; base.OnPropertyChanged("logTalla9"); }
        }
        private Boolean _logTalla10 = false;
        public Boolean logTalla10
        {
            get { return _logTalla10; }
            set { _logTalla10 = value; base.OnPropertyChanged("logTalla10"); }
        }
        private Boolean _logTalla11 = false;
        public Boolean logTalla11
        {
            get { return _logTalla11; }
            set { _logTalla11 = value; base.OnPropertyChanged("logTalla11"); }
        }
        private Boolean _logTalla12 = false;
        public Boolean logTalla12
        {
            get { return _logTalla12; }
            set { _logTalla12 = value; base.OnPropertyChanged("logTalla12"); }
        }

        private Boolean _logTalla13 = false;
        public Boolean logTalla13
        {
            get { return _logTalla13; }
            set { _logTalla13 = value; base.OnPropertyChanged("logTalla13"); }
        }

        private Boolean _logTalla14 = false;
        public Boolean logTalla14
        {
            get { return _logTalla14; }
            set { _logTalla14 = value; base.OnPropertyChanged("logTalla14"); }
        }

        private Boolean _logTalla15 = false;
        public Boolean logTalla15
        {
            get { return _logTalla15; }
            set { _logTalla15 = value; base.OnPropertyChanged("logTalla15"); }
        }

        private Boolean _logTalla16 = false;
        public Boolean logTalla16
        {
            get { return _logTalla16; }
            set { _logTalla16 = value; base.OnPropertyChanged("logTalla16"); }
        }

        private Boolean _logTalla17 = false;
        public Boolean logTalla17
        {
            get { return _logTalla17; }
            set { _logTalla17 = value; base.OnPropertyChanged("logTalla17"); }
        }

        private Boolean _logTalla18 = false;
        public Boolean logTalla18
        {
            get { return _logTalla18; }
            set { _logTalla18 = value; base.OnPropertyChanged("logTalla18"); }
        }

        private Boolean _logTalla19 = false;
        public Boolean logTalla19
        {
            get { return _logTalla19; }
            set { _logTalla19 = value; base.OnPropertyChanged("logTalla19"); }
        }

        private Boolean _logTalla20 = false;
        public Boolean logTalla20
        {
            get { return _logTalla20; }
            set { _logTalla20 = value; base.OnPropertyChanged("logTalla20"); }
        }

        private VMbuscarReferencia _buscarReferencia;
        public VMbuscarReferencia buscarReferencia
        {
            get { return _buscarReferencia; }
            set { _buscarReferencia = value; base.OnPropertyChanged("buscarReferencia"); }
        }

        private VMvisorFotoReferencia _visorFotoReferencia = new VMvisorFotoReferencia();
        public VMvisorFotoReferencia visorFotoReferencia
        {
            get { return _visorFotoReferencia; }
            set { _visorFotoReferencia = value; base.OnPropertyChanged("visorFotoReferencia"); }
        }

        #endregion

        #region Comandos
        RelayCommand _cmdSalir;
        public ICommand cmdSalir
        {
            get
            {
                if (_cmdSalir == null)
                {
                    _cmdSalir = new RelayCommand(Salir);
                }
                return _cmdSalir;
            }
        }

        RelayCommand _cmGrabar;
        public ICommand cmdGrabar
        {
            get
            {
                if (_cmGrabar == null)
                {
                    _cmGrabar = new RelayCommand(r => grabar());
                }
                return _cmGrabar;
            }
        }

        RelayCommand _cmdBuscarReferencia;
        public ICommand cmdBuscarReferencia
        {
            get
            {
                if (_cmdBuscarReferencia == null)
                {
                    _cmdBuscarReferencia = new RelayCommand(r => buscar_referencia());
                }
                return _cmdBuscarReferencia;
            }
        }

        

        #endregion

        #region Metodos

        void onBuscarReferenciaPropertyChanged(object sender, PropertyChangedEventArgs e)
        {
            try
            {
                if (e.PropertyName == "IsOpen")
                {
                    if (!buscarReferencia.IsOpen)
                    {
                        foreach (string x in buscarReferencia.listaProducto)
                        {
                            strReferencia = x;
                            consultaColores();
                        }
                    }
                }
            }
            catch (Exception ex) { MessageBox.Show(ex.Message); }
        }

        void limpiaReferencia()
        {
            try
            {
                liscolores = null;
                strNombreReferencia = null;
                selcolor = null;
                strTalla1 = null;
                strTalla2 = null;
                strTalla3 = null;
                strTalla4 = null;
                strTalla5 = null;
                strTalla6 = null;
                strTalla7 = null;
                strTalla8 = null;
                strTalla9 = null;
                strTalla10 = null;
                strTalla11 = null;
                strTalla12 = null;
                strTalla13 = null;
                strTalla14 = null;
                strTalla15 = null;
                strTalla16 = null;
                strTalla17 = null;
                strTalla18 = null;
                strTalla19 = null;
                strTalla20 = null;

                numTalla1 = 0;
                numTalla2 = 0;
                numTalla3 = 0;
                numTalla4 = 0;
                numTalla5 = 0;
                numTalla6 = 0;
                numTalla7 = 0;
                numTalla8 = 0;
                numTalla9 = 0;
                numTalla10 = 0;
                numTalla11 = 0;
                numTalla12 = 0;
                numTalla13 = 0;
                numTalla14 = 0;
                numTalla15 = 0;
                numTalla16 = 0;
                numTalla17 = 0;
                numTalla18 = 0;
                numTalla19 = 0;
                numTalla20 = 0;

                logTalla1 = false;
                logTalla2 = false;
                logTalla3 = false;
                logTalla4 = false;
                logTalla5 = false;
                logTalla6 = false;
                logTalla7 = false;
                logTalla8 = false;
                logTalla9 = false;
                logTalla10 = false;
                logTalla11 = false;
                logTalla12 = false;
                logTalla13 = false;
                logTalla14 = false;
                logTalla15 = false;
                logTalla16 = false;
                logTalla17 = false;
                logTalla18 = false;
                logTalla19 = false;
                logTalla20 = false;
            }
            catch (Exception ex) { MessageBox.Show(ex.Message); }
        }

        void limpiarFormulario()
        {
            try
            {
                limpiaReferencia();
                informe = new DataTable();
                selcliente = null;
                strAño = Convert.ToString(DateTime.Now.Year);
            }
            catch (Exception ex) { MessageBox.Show(ex.Message); }
        }

        private void consultaClientes()
        {
            try
            {
                lisclientes = selcliente.listaClientesInternos();
            }
            catch (Exception ex) { MessageBox.Show(ex.Message); }
        }

        private void consultaColores()
        {
            try
            {
                if (strReferencia != null)
                {
                    if (strReferencia.Length == 4)
                    {
                        _referencia.CODREF_REF = strReferencia;
                        _referencia.Consultar();
                        if (_referencia.EXISTE)
                        {
                            visorFotoReferencia.strCodigo = strReferencia;
                            strNombreReferencia = _referencia.NOMREF_REF;
                            liscolores = _color.ListarColoresReferencia(strReferencia);
                            DataTable dt = _referencia.buscarTallas();
                            int numTotal = 1;
                            foreach (DataRow dr in dt.Rows)
                            {
                                if (numTotal == 1) strTalla1 = dr["CODTAL_TAL"].ToString();
                                if (numTotal == 2) strTalla2 = dr["CODTAL_TAL"].ToString();
                                if (numTotal == 3) strTalla3 = dr["CODTAL_TAL"].ToString();
                                if (numTotal == 4) strTalla4 = dr["CODTAL_TAL"].ToString();
                                if (numTotal == 5) strTalla5 = dr["CODTAL_TAL"].ToString();
                                if (numTotal == 6) strTalla6 = dr["CODTAL_TAL"].ToString();
                                if (numTotal == 7) strTalla7 = dr["CODTAL_TAL"].ToString();
                                if (numTotal == 8) strTalla8 = dr["CODTAL_TAL"].ToString();
                                if (numTotal == 9) strTalla9 = dr["CODTAL_TAL"].ToString();
                                if (numTotal == 10) strTalla10 = dr["CODTAL_TAL"].ToString();
                                if (numTotal == 11) strTalla11 = dr["CODTAL_TAL"].ToString();
                                if (numTotal == 12) strTalla12 = dr["CODTAL_TAL"].ToString();
                                if (numTotal == 13) strTalla13 = dr["CODTAL_TAL"].ToString();
                                if (numTotal == 14) strTalla14 = dr["CODTAL_TAL"].ToString();
                                if (numTotal == 15) strTalla15 = dr["CODTAL_TAL"].ToString();
                                if (numTotal == 16) strTalla16 = dr["CODTAL_TAL"].ToString();
                                if (numTotal == 17) strTalla17 = dr["CODTAL_TAL"].ToString();
                                if (numTotal == 18) strTalla18 = dr["CODTAL_TAL"].ToString();
                                if (numTotal == 19) strTalla19 = dr["CODTAL_TAL"].ToString();
                                if (numTotal == 20) strTalla20 = dr["CODTAL_TAL"].ToString();
                                
                                numTotal = numTotal + 1;
                            }

                        }
                    }
                }
            }
            catch (Exception ex) { MessageBox.Show(ex.Message); }
        }

        private void buscar_referencia()
        {
            try
            {
                buscarReferencia.IsOpen = true;
            }
            catch (Exception ex) { MessageBox.Show(ex.Message); }
        }

        private void consultarPedidosCliente()
        {
            try
            {
                CLSMAELIN _lineas = new CLSMAELIN();
                DataTable dtLineas = _lineas.ConsultaLineas();

                string strLineas="";
                foreach (DataRow lin in dtLineas.Rows)
                {
                    strLineas = strLineas + lin[0].ToString() + "-";
                }

                CLSTEMPORAL tmp = new CLSTEMPORAL();
                DateTime dtmFechaIni = Convert.ToDateTime("01/01/" + strAño);
                tmp.CONSENCPPCP(selcliente.CODCLI_CLI, selcliente.CODCLI_CLI, dtmFechaIni, DateTime.Now, "P", strLineas);
                informe = tmp.dtDetallePedCli;
            }
            catch (Exception ex) { MessageBox.Show(ex.Message); }
        }

        private void grabar()
        {
            try
            {
                string strTal = "";
                string strCan = "";
                if (logTalla1)
                {
                    if (numTalla1 > 0)
                    {
                        if (numTalla1 < 10)
                            strCan = strCan + "0" +  Convert.ToString(numTalla1) + "-";
                        else
                            strCan = strCan + Convert.ToString(numTalla1) + "-";
                        strTal = strTal + strTalla1 + "-";
                    }
                }
                if (logTalla2)
                {
                    if (numTalla2 > 0)
                    {
                        if (numTalla2 < 10)
                            strCan = strCan + "0" + Convert.ToString(numTalla2) + "-";
                        else                            
                            strCan = strCan + Convert.ToString(numTalla2) + "-";
                        strTal = strTal + strTalla2 + "-";
                    }
                }
                if (logTalla3)
                {
                    if (numTalla3 > 0)
                    {
                        if (numTalla3 < 10)
                            strCan = strCan + "0" + Convert.ToString(numTalla3) + "-";
                        else
                            strCan = strCan + Convert.ToString(numTalla3) + "-";
                        strTal = strTal + strTalla3 + "-";                        
                    }
                }
                if (logTalla4)
                {
                    if (numTalla4 > 0)
                    {
                        if (numTalla4 < 10)
                            strCan = strCan +  "0" + Convert.ToString(numTalla4) + "-";
                        else
                            strCan = strCan + Convert.ToString(numTalla4) + "-";    
                        strTal = strTal + strTalla4 + "-";                        
                    }
                }
                if (logTalla5)
                {
                    if (numTalla5 > 0)
                    {
                        if (numTalla5 < 10)
                            strCan = strCan + "0" + Convert.ToString(numTalla5) + "-";
                        else
                            strCan = strCan + Convert.ToString(numTalla5) + "-";
                        strTal = strTal + strTalla5 + "-";                        
                    }
                }
                if (logTalla6)
                {
                    if (numTalla6 > 0)
                    {
                        if (numTalla6 < 10)
                            strCan = strCan + "0" + Convert.ToString(numTalla6) + "-";
                        else
                            strCan = strCan + Convert.ToString(numTalla6) + "-";
                        strTal = strTal + strTalla6 + "-";                        
                    }
                }
                if (logTalla7)
                {
                    if (numTalla7 > 0)
                    {
                        if (numTalla7 < 10)
                            strCan = strCan + "0" + Convert.ToString(numTalla7) + "-";
                        else
                            strCan = strCan + Convert.ToString(numTalla7) + "-";
                        strTal = strTal + strTalla7 + "-";                        
                    }
                }
                if (logTalla8)
                {
                    if (numTalla8 > 0)
                    {
                        if (numTalla8 < 10)
                            strCan = strCan + "0" + Convert.ToString(numTalla8) + "-";
                        else
                            strCan = strCan + Convert.ToString(numTalla8) + "-";
                        strTal = strTal + strTalla8 + "-";
                    }    
                }
                if (logTalla9)
                {
                    if (numTalla9 > 0)
                    {
                        if (numTalla9 < 10)
                            strCan = strCan + "0" + Convert.ToString(numTalla9) + "-";
                        else
                            strCan = strCan + Convert.ToString(numTalla9) + "-";
                        strTal = strTal + strTalla9 + "-";                        
                    }
                }
                if (logTalla10)
                {
                    if (numTalla10 > 0)
                    {
                        if (numTalla10 < 10)
                            strCan = strCan + "0" + Convert.ToString(numTalla10) + "-";
                        else
                            strCan = strCan + Convert.ToString(numTalla10) + "-";
                        strTal = strTal + strTalla10 + "-";                        
                    }
                }
                if (logTalla11)
                {
                    if (numTalla11 > 0)
                    {
                        if (numTalla11 < 10)
                            strCan = strCan + "0" + Convert.ToString(numTalla11) + "-";
                        else
                            strCan = strCan + Convert.ToString(numTalla11) + "-";
                        strTal = strTal + strTalla11 + "-";                        
                    }
                }
                if (logTalla12)
                {
                    if (numTalla12 > 0)
                    {
                        if (numTalla12 < 10)
                            strCan = strCan + "0" + Convert.ToString(numTalla12) + "-";
                        else
                            strCan = strCan + Convert.ToString(numTalla12) + "-";
                        strTal = strTal + strTalla12 + "-";                        
                    }
                }
                if (logTalla13)
                {
                    if (numTalla13 > 0)
                    {
                        if (numTalla13 < 10)
                            strCan = strCan + "0" + Convert.ToString(numTalla13) + "-";
                        else
                            strCan = strCan + Convert.ToString(numTalla13) + "-";
                        strTal = strTal + strTalla13 + "-";                        
                    }
                }
                if (logTalla14)
                {
                    if (numTalla14 > 0)
                    {
                        if (numTalla14 < 10)
                            strCan = strCan + "0" + Convert.ToString(numTalla14) + "-";
                        else
                            strCan = strCan + Convert.ToString(numTalla14) + "-";
                        strTal = strTal + strTalla14 + "-";                        
                    }
                }
                if (logTalla15)
                {
                    if (numTalla15 > 0)
                    {
                        if (numTalla15 < 10)
                            strCan = strCan + "0" + Convert.ToString(numTalla15) + "-";
                        else
                            strCan = strCan + Convert.ToString(numTalla15) + "-";
                        strTal = strTal + strTalla15 + "-";                        
                    }
                }
                if (logTalla16)
                {
                    if (numTalla16 > 0)
                    {
                        if (numTalla16 < 10)
                            strCan = strCan + "0" + Convert.ToString(numTalla16) + "-";
                        else
                            strCan = strCan + Convert.ToString(numTalla16) + "-";
                        strTal = strTal + strTalla16 + "-";                        
                    }
                }
                if (logTalla17)
                {
                    if (numTalla17 > 0)
                    {
                        if (numTalla17 < 10)
                            strCan = strCan + "0" + Convert.ToString(numTalla17) + "-";
                        else
                            strCan = strCan + Convert.ToString(numTalla17) + "-";
                        strTal = strTal + strTalla17 + "-";                        
                    }
                }
                if (logTalla18)
                {
                    if (numTalla18 > 0)
                    {
                        if (numTalla18 < 10)
                            strCan = strCan + "0" + Convert.ToString(numTalla18) + "-";
                        else
                            strCan = strCan + Convert.ToString(numTalla18) + "-";
                        strTal = strTal + strTalla18 + "-";                        
                    }
                }
                if (logTalla19)
                {
                    if (numTalla19 > 0)
                    {
                        if (numTalla19 < 10)
                            strCan = strCan + "0" + Convert.ToString(numTalla19) + "-";
                        else
                            strCan = strCan + Convert.ToString(numTalla19) + "-";
                        strTal = strTal + strTalla19 + "-";                        
                    }
                }
                if (logTalla20)
                {
                    if (numTalla20 > 0)
                    {
                        if (numTalla20 < 10)
                            strCan = strCan + "0" + Convert.ToString(numTalla20) + "-";
                        else
                            strCan = strCan + Convert.ToString(numTalla20) + "-";
                        strTal = strTal + strTalla20 + "-";                        
                    }
                }

                MDOgeneral.spComando.CommandText = "SP_PEDIDOINTERNO";
                MDOgeneral.spComando.Connection = MDOgeneral.conexion;
                MDOgeneral.spComando.CommandType = CommandType.StoredProcedure;
                MDOgeneral.spComando.Parameters.Clear();

                //Input
                MDOgeneral.spComando.Parameters.Add("pva_codcli", Oracle.DataAccess.Client.OracleDbType.Varchar2, 40).Value = selcliente.CODCLI_CLI;
                MDOgeneral.spComando.Parameters["pva_codcli"].Direction = ParameterDirection.Input;

                MDOgeneral.spComando.Parameters.Add("pnu_nroped", Oracle.DataAccess.Client.OracleDbType.Int32).Value = Convert.ToUInt32(strAño);
                MDOgeneral.spComando.Parameters["pnu_nroped"].Direction = ParameterDirection.Input;

                MDOgeneral.spComando.Parameters.Add("pva_codref", Oracle.DataAccess.Client.OracleDbType.Varchar2, 40).Value = strReferencia;
                MDOgeneral.spComando.Parameters["pva_codref"].Direction = ParameterDirection.Input;

                MDOgeneral.spComando.Parameters.Add("pva_codcol", Oracle.DataAccess.Client.OracleDbType.Varchar2, 40).Value = selcolor.CODCOL_COL;
                MDOgeneral.spComando.Parameters["pva_codcol"].Direction = ParameterDirection.Input;

                MDOgeneral.spComando.Parameters.Add("pva_tallas", Oracle.DataAccess.Client.OracleDbType.Varchar2, 500).Value = strTal;
                MDOgeneral.spComando.Parameters["pva_tallas"].Direction = ParameterDirection.Input;

                MDOgeneral.spComando.Parameters.Add("pva_cantidades", Oracle.DataAccess.Client.OracleDbType.Varchar2, 500).Value = strCan;
                MDOgeneral.spComando.Parameters["pva_cantidades"].Direction = ParameterDirection.Input;

                //Output
                MDOgeneral.spComando.Parameters.Add("pva_resul", Oracle.DataAccess.Client.OracleDbType.Varchar2, 2000).Direction = ParameterDirection.Output;
                MDOgeneral.spComando.Parameters.Add("pva_errusu", Oracle.DataAccess.Client.OracleDbType.Varchar2, 2000).Direction = ParameterDirection.Output;
                MDOgeneral.spComando.ExecuteNonQuery();
                string c = MDOgeneral.spComando.Parameters["pva_errusu"].Value.ToString();

                MessageBox.Show("Se agregaron los itmes al pedido.", "Confirmación", MessageBoxButton.OK, MessageBoxImage.Information, MessageBoxResult.OK);

                limpiarFormulario();
            }
            catch (Exception ex) { MessageBox.Show(ex.Message); }
        }

        private void Salir(Object frmformulario)
        {
            ((Window)frmformulario).Close();
        }
        #endregion

        #region IDataErrorInfo Members

        string IDataErrorInfo.Error { get { return null; } }

        string IDataErrorInfo.this[string propertyName]
        {
            get { return this.GetValidationError(propertyName); }
        }

        #endregion

        #region Validation

        /// <summary>
        /// Returns true if this object has no validation errors.
        /// </summary>
        /// 

        public bool IsValid
        {
            get
            {
                foreach (string property in ValidatedProperties)
                    if (GetValidationError(property) != null)
                        return false;
                return true;
            }
        }

        static readonly string[] ValidatedProperties = 
            { 
                "selcliente",
                "strAño",
                "strReferencia",
                "selcolor",
                "numTalla1",
                "numTalla2",
                "numTalla3",
                "numTalla4",
                "numTalla5",
                "numTalla6",
                "numTalla7",
                "numTalla8",
                "numTalla9",
                "numTalla10",
                "numTalla11",
                "numTalla12",
                "numTalla13",
                "numTalla14",
                "numTalla15",
                "numTalla16",
                "numTalla17",
                "numTalla18",
                "numTalla19",
                "numTalla20",
                "numTotal"
            };

        string GetValidationError(string propertyName)
        {
            if (Array.IndexOf(ValidatedProperties, propertyName) < 0)
                return null;

            string error = null;

            switch (propertyName)
            {
                case "selcliente":
                    error = this.ValidateCliente();
                    break;
                case "strAño":
                    error = this.ValidateAño();
                    break;
                case "strReferencia":
                    error = this.ValidateReferencia();
                    break;
                case "selcolor":
                    error = this.ValidateColor();
                    break;
                case "numTalla1":
                    error = this.ValidateTalla1();
                    break;
                case "numTalla2":
                    error = this.ValidateTalla2();
                    break;
                case "numTalla3":
                    error = this.ValidateTalla3();
                    break;
                case "numTalla4":
                    error = this.ValidateTalla4();
                    break;
                case "numTalla5":
                    error = this.ValidateTalla5();
                    break;
                case "numTalla6":
                    error = this.ValidateTalla6();
                    break;
                case "numTalla7":
                    error = this.ValidateTalla7();
                    break;
                case "numTalla8":
                    error = this.ValidateTalla8();
                    break;
                case "numTalla9":
                    error = this.ValidateTalla9();
                    break;
                case "numTalla10":
                    error = this.ValidateTalla10();
                    break;
                case "numTalla11":
                    error = this.ValidateTalla11();
                    break;
                case "numTalla12":
                    error = this.ValidateTalla12();
                    break;
                case "numTalla13":
                    error = this.ValidateTalla13();
                    break;
                case "numTalla14":
                    error = this.ValidateTalla14();
                    break;
                case "numTalla15":
                    error = this.ValidateTalla15();
                    break;
                case "numTalla16":
                    error = this.ValidateTalla16();
                    break;
                case "numTalla17":
                    error = this.ValidateTalla17();
                    break;
                case "numTalla18":
                    error = this.ValidateTalla18();
                    break;
                case "numTalla19":
                    error = this.ValidateTalla19();
                    break;
                case "numTalla20":
                    error = this.ValidateTalla20();
                    break;
                case "numTotal":
                    error = this.ValidateTotal();
                    break;
                default:
                    Debug.Fail("Unexpected property being validated on Customer: " + propertyName);
                    break;
            }
            return error;
        }

        string ValidateCliente()
        {
            try
            {
                if (selcliente == null)
                {
                    return "Debe seleccionar un cliente.";
                }
                else
                {
                    if (selcliente.CODCLI_CLI == null) { return "Debe seleccionar un cliente."; }
                }
                return null;
            }
            catch (Exception ex) { MessageBox.Show(ex.Message); }
            return null;
        }

        string ValidateAño()
        {
            try
            {
                if (strAño == null) { return "Debe ingresar un año"; }
                else
                {
                    if (strAño.Length != 4) { return "Año invalido"; }
                }
                return null;
            }
            catch (Exception ex) { MessageBox.Show(ex.Message); }
            return null;
        }

        string ValidateReferencia()
        {
            try
            {
                if (strReferencia == null) { return "Debe ingresar una referencia"; }
                else
                {
                    if (strReferencia.Length != 4) { return "Código de referencia no valida." ; }
                }
                return null;
            }
            catch (Exception ex) { MessageBox.Show(ex.Message); }
            return null;
        }

        string ValidateColor()
        {
            try
            {
                if (selcolor == null) { return "Debe seleccionar un color para la referencia."; }
                else
                {
                    if (selcolor.CODCOL_COL == null) { return "Debe seleccionar un color."; }
                }
                return null;
            }
            catch (Exception ex) { MessageBox.Show(ex.Message); }
            return null;
        }

        string ValidateTalla1()
        {
            try
            {
                if (numTalla1 < 0 || numTalla1 > 60) { return "Cantidad invalida. Debe ser entre uno y sesenta."; }
                return null;
            }
            catch (Exception ex) { MessageBox.Show(ex.Message); }
            return null;
        }

        string ValidateTalla2()
        {
            try
            {
                if (numTalla2 < 0 || numTalla2 > 60) { return "Cantidad invalida. Debe ser entre uno y sesenta."; }
                return null;
            }
            catch (Exception ex) { MessageBox.Show(ex.Message); }
            return null;
        }

        string ValidateTalla3()
        {
            try
            {
                if (numTalla3 < 0 || numTalla3 > 60) { return "Cantidad invalida. Debe ser entre uno y sesenta."; }
                return null;
            }
            catch (Exception ex) { MessageBox.Show(ex.Message); }
            return null;
        }

        string ValidateTalla4()
        {
            try
            {
                if (numTalla4 < 0 || numTalla4 > 60) { return "Cantidad invalida. Debe ser entre uno y sesenta."; }
                return null;
            }
            catch (Exception ex) { MessageBox.Show(ex.Message); }
            return null;
        }

        string ValidateTalla5()
        {
            try
            {
                if (numTalla5 < 0 || numTalla5 > 60) { return "Cantidad invalida. Debe ser entre uno y sesenta."; }
                return null;
            }
            catch (Exception ex) { MessageBox.Show(ex.Message); }
            return null;
        }

        string ValidateTalla6()
        {
            try
            {
                if (numTalla6 < 0 || numTalla6 > 60) { return "Cantidad invalida. Debe ser entre uno y sesenta."; }
                return null;
            }
            catch (Exception ex) { MessageBox.Show(ex.Message); }
            return null;
        }

        string ValidateTalla7()
        {
            try
            {
                if (numTalla7 < 0 || numTalla7 > 60) { return "Cantidad invalida. Debe ser entre uno y sesenta."; }
                return null;
            }
            catch (Exception ex) { MessageBox.Show(ex.Message); }
            return null;
        }

        string ValidateTalla8()
        {
            try
            {
                if (numTalla8 < 0 || numTalla8 > 60) { return "Cantidad invalida. Debe ser entre uno y sesenta."; }
                return null;
            }
            catch (Exception ex) { MessageBox.Show(ex.Message); }
            return null;
        }

        string ValidateTalla9()
        {
            try
            {
                if (numTalla9 < 0 || numTalla9 > 60) { return "Cantidad invalida. Debe ser entre uno y sesenta."; }
                return null;
            }
            catch (Exception ex) { MessageBox.Show(ex.Message); }
            return null;
        }

        string ValidateTalla10()
        {
            try
            {
                if (numTalla10 < 0 || numTalla10 > 60) { return "Cantidad invalida. Debe ser entre uno y sesenta."; }
                return null;
            }
            catch (Exception ex) { MessageBox.Show(ex.Message); }
            return null;
        }

        string ValidateTalla11()
        {
            try
            {
                if (numTalla11 < 0 || numTalla11 > 60) { return "Cantidad invalida. Debe ser entre uno y sesenta."; }
                return null;
            }
            catch (Exception ex) { MessageBox.Show(ex.Message); }
            return null;
        }

        string ValidateTalla12()
        {
            try
            {
                if (numTalla12 < 0 || numTalla12 > 60) { return "Cantidad invalida. Debe ser entre uno y sesenta."; }
                return null;
            }
            catch (Exception ex) { MessageBox.Show(ex.Message); }
            return null;
        }

        string ValidateTalla13()
        {
            try
            {
                if (numTalla13 < 0 || numTalla13 > 60) { return "Cantidad invalida. Debe ser entre uno y sesenta."; }
                return null;
            }
            catch (Exception ex) { MessageBox.Show(ex.Message); }
            return null;
        }

        string ValidateTalla14()
        {
            try
            {
                if (numTalla14 < 0 || numTalla14 > 60) { return "Cantidad invalida. Debe ser entre uno y sesenta."; }
                return null;
            }
            catch (Exception ex) { MessageBox.Show(ex.Message); }
            return null;
        }

        string ValidateTalla15()
        {
            try
            {
                if (numTalla15 < 0 || numTalla15 > 60) { return "Cantidad invalida. Debe ser entre uno y sesenta."; }
                return null;
            }
            catch (Exception ex) { MessageBox.Show(ex.Message); }
            return null;
        }

        string ValidateTalla16()
        {
            try
            {
                if (numTalla16 < 0 || numTalla16 > 60) { return "Cantidad invalida. Debe ser entre uno y sesenta."; }
                return null;
            }
            catch (Exception ex) { MessageBox.Show(ex.Message); }
            return null;
        }

        string ValidateTalla17()
        {
            try
            {
                if (numTalla17 < 0 || numTalla17 > 60) { return "Cantidad invalida. Debe ser entre uno y sesenta."; }
                return null;
            }
            catch (Exception ex) { MessageBox.Show(ex.Message); }
            return null;
        }

        string ValidateTalla18()
        {
            try
            {
                if (numTalla18 < 0 || numTalla18 > 60) { return "Cantidad invalida. Debe ser entre uno y sesenta."; }
                return null;
            }
            catch (Exception ex) { MessageBox.Show(ex.Message); }
            return null;
        }

        string ValidateTalla19()
        {
            try
            {
                if (numTalla19 < 0 || numTalla19 > 60) { return "Cantidad invalida. Debe ser entre uno y sesenta."; }
                return null;
            }
            catch (Exception ex) { MessageBox.Show(ex.Message); }
            return null;
        }

        string ValidateTalla20()
        {
            try
            {
                if (numTalla20 < 0 || numTalla20 > 60) { return "Cantidad invalida. Debe ser entre uno y sesenta."; }
                return null;
            }
            catch (Exception ex) { MessageBox.Show(ex.Message); }
            return null;
        }

        string ValidateTotal()
        {
            try
            {
                if (numTotal == 0) { return "Debe ingresar al menos una cantidad en alguna de las tallas."; }
                return null;
            }
            catch (Exception ex) { MessageBox.Show(ex.Message); }
            return null;
        }

        #endregion
    }

}
